package com.zhongge.code;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @ClassName Test02
 * @Description TODO
 * @Author 笨忠
 * @Date 2025/9/21 19:37
 * @Version 1.0
 */
public class Test02 {
    public static ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        //首先我先定义一个集合用于存放到时候我的数据
        ArrayList<Integer> list = new ArrayList<>();
        //为了防止安全我做一个安全校验
        if (nums1.isEmpty() || nums2.isEmpty()) {
            return list;
        }
        //我先对两个集合进行去重;
        Set<Integer> set1 = new HashSet<>();
        set1.addAll(nums1);
        Set<Integer> set2 = new HashSet<>();
        set2.addAll(nums2);
        //我先使用循环嵌套的想法
        //我想使用迭代器来完成遍历
        Iterator<Integer> it1 = set1.iterator();
        while (it1.hasNext()) {
            //取出一个 数据
            int tmp1 = it1.next();
            Iterator<Integer> it2 = set2.iterator();
            //我想和 nums2中每一个对比
            while (it2.hasNext()) {
                //取出每一个数据
                int tmp2 = it2.next();
                if (tmp1 == tmp2){//由于我的tmp1和tmp2都是int所以我直接使用==
                    //如果相等我就 存起来
                    list.add(tmp1);
                }
            }
        }
        return list;
    }

    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(2);
        list2.add(2);
        list2.add(2);
        list2.add(2);
        //出错了就调试
        System.out.println(intersection(list1, list2));
    }
}
